package edualuc.game.JogoGalinhaDroid;



public class Personagem  {
	private int coordenadaX;
	private int coordenadaY;
	private int velocidade;
	private Direcao direcao;
	
	public Personagem(int posX, int posY, int velocidadeInicial, Direcao dir) {
		setCoordenadasXY(posX, posY) ;		
		setVelocidade(velocidadeInicial);
		setDirecao(dir);		
	}

	public void mover() {
		switch( this.getDirecao() ){
			case CIMA:
				coordenadaY -= this.getVelocidade();
				break;
			
			case BAIXO:
				coordenadaY += this.getVelocidade();
				break;
			
			case ESQUERDA:
				coordenadaX -= this.getVelocidade();
				break;
			
			case DIREITA:
				coordenadaX += this.getVelocidade();
				break;
		}
	}
	
	public void dobrarParaCima() {
		setDirecao(Direcao.CIMA);
	}

	public void dobrarParaBaixo() {
		setDirecao(Direcao.BAIXO);
	}

	public void dobrarParaEsquerda() {
		setDirecao(Direcao.ESQUERDA);
	}

	public void dobrarParaDireita() {
		setDirecao(Direcao.DIREITA);
	}
	public void inverterDirecao() {
		setDirecao(Direcao.inverterDirecao(direcao));
	}
	public Personagem proximoPasso() {
		Personagem novoPersonagem = new Personagem(getCoordenadaX(), 
				getCoordenadaY(), getVelocidade(), getDirecao());
		novoPersonagem.mover();
		return novoPersonagem;
	}

	public int getCoordenadaX() {
		return coordenadaX;
	}

	public void setCoordenadaX(int coordenadaX) {
		this.coordenadaX = coordenadaX;
	}

	public int getCoordenadaY() {
		return coordenadaY;
	}

	public void setCoordenadaY(int coordenadaY) {
		this.coordenadaY = coordenadaY;
	}

	public void setCoordenadasXY(int coordenadaX, int coordenadaY){
		this.setCoordenadaX(coordenadaX);
		this.setCoordenadaY(coordenadaY);		
	}

	public int getVelocidade() {
		return velocidade;
	}

	public void setVelocidade(int velocidade) {
		this.velocidade = velocidade;
	}

	public Direcao getDirecao() {
		return direcao;
	}

	public void setDirecao(Direcao novaDirecao) {
		this.direcao = novaDirecao;
	}
}
